/*
 * create by Littleken at 2019/3/14 17:28
 */
package com.littleken.order.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.littleken.order.enums.OrderStatusEnum;
import com.littleken.order.enums.PayStatusEnum;
import com.littleken.order.model.OrderDetail;
import com.littleken.order.utils.EnumUtil;
import lombok.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 订单传输实体类 extends OrderMaster
 */

@Data // @Data = @Getter + @Setter + @ToString
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)//不返回为null的字段
public class OrderDTO  {
    /** 订单id. */
    private String orderId;

    /** 买家名字. */
    private String buyerName;

    /** 买家手机号. */
    private String buyerPhone;

    /** 买家地址. */
    private String buyerAddress;

    /** 买家微信Openid. */
    private String buyerOpenid;

    /** 订单总金额. */
    private BigDecimal orderAmount;

    /** 订单状态, 默认为0新下单. */
    private Integer orderStatus;

    /** 支付状态, 默认为0未支付. */
    private Integer payStatus;

    /** 创建时间. */
    /*格式转换，从2019-03-15T02:49:21.000+0000 转换为以秒为单位的时间戳*/
//    @JsonSerialize(using = Date2LongSerializer.class)
    private Date createTime;

    /** 更新时间. */
//    @JsonSerialize(using = Date2LongSerializer.class)
    private Date updateTime;

    //完成OrderMaster与OrderDetail的一对多映射
    List<OrderDetail> orderDetailList;


    /**
     * 用于给前端返回订单状态字段 0->成功 等等
     * @return
     */
   /* @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtil.getByCode(orderStatus, OrderStatusEnum.class);
    }

    *//**
     * 用于给前端返回支付状态字段 0->成功 等等
     * @return
     *//*
    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtil.getByCode(payStatus, PayStatusEnum.class);
    }*/
}
